package gatilhos;

import org.anddev.andengine.audio.sound.SoundManager;
import org.anddev.andengine.entity.primitive.Rectangle;
import org.anddev.andengine.entity.sprite.AnimatedSprite;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.opengl.texture.TextureManager;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.anddev.andengine.opengl.texture.region.TextureRegion;

import android.content.Context;
import assets.Som;

public class Corda extends Gatilho {

	private BitmapTextureAtlas mapaDeTexturas;
	private TextureRegion textura;

	public Corda(int x, int y,Context contexto, TextureManager tm, SoundManager sm){
		this.x = x;
		this.y = y;
		largura = 64;
		altura = 128;

		mapaDeTexturas = new BitmapTextureAtlas(64, 128, TextureOptions.BILINEAR);
		BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/gatilhos/");
		textura = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mapaDeTexturas, contexto, "Gatilho #3.png", 0, 0);
		tm.loadTexture(mapaDeTexturas);

		sprite = new Sprite(x, y, textura);
		
		ativacao = new Som("Gatilho #2.ogg", contexto, sm);
	}

	@Override
	public void atualiza() {
		antigaElasticidade = elasticidade;
		if(ativado){
			if(elasticidade < 64){
				elasticidade+= 0.5f;
				sprite.setSize(largura, altura + elasticidade);
			}
		}
		if(!ativado && elasticidade > 0){
			elasticidade--;
			sprite.setSize(largura, altura + elasticidade);
		}
	}

	@Override
	public boolean colidiuComCaoGuia(Rectangle spriteCaoGuia) {
		if(spriteCaoGuia.collidesWith(sprite)){
			return true;
		}else{
			return false;
		}
	}
	
	@Override
	public void trataColisaoComCaoGuia(Rectangle spriteCaoGuia) {
		if(antigaElasticidade <= elasticidade){
			if(!ativado){
				//Principal.instancia.listaDeSons.get(1).playFile();
			}
			ativado = true;
		}
		ativado = true;
	}
	
	@Override
	public void trataNaoColisaoComCaoGuia() {
		ativado = false;
	}
	
	@Override
	public void atualizaSprite() {

	}
	
	@Override
	public void tocaSom() {
		ativacao.som.play();
	}

	@Override
	public void posicionaNaCena(int mapx, int mapy) {
		sprite.setPosition((int)x-mapx, (int)y-mapy);
	}

}
